package com.example.android.architecture.blueprints.todoapp.tasks;

import dagger.Module;
import dagger.Provides;

/**
 * This is a Dagger module. We use this to pass in the View dependency to the
 * {@link TasksPresenter}.
 */
@Module
public class TasksPresenterModule {

    private final TasksContract.View mView;
//这里通过实例化构造方法的时候传入所需要的 view
    //另一种是在该类中进行 new 一个 然后供给 provideXXXX方法进行返回
    //但是这里的 view 无法通过 new 的方式得到，所以通过 构造方法进行外界传入
    public TasksPresenterModule(TasksContract.View view) {
        mView = view;
    }

    //通过 Module 提供 TasksPresenter 的参数 TasksContract.View 注入
    @Provides
    TasksContract.View provideTasksContractView() {
        return mView;
    }

}
